idx += sizeof(regs->eip) * 2;
mem2hex ((char *)®s->eflags, &buffer[idx], sizeof(regs->eflags));
idx += sizeof(regs->eflags) * 2;
- mem2hex ((char *)®s->xcs, &buffer[idx], sizeof(regs->xcs));
- idx += sizeof(regs->xcs) * 2;
- mem2hex ((char *)®s->xss, &buffer[idx], sizeof(regs->xss));
- idx += sizeof(regs->xss) * 2;
- mem2hex ((char *)®s->xds, &buffer[idx], sizeof(regs->xds));
- idx += sizeof(regs->xds) * 2;
- mem2hex ((char *)®s->xes, &buffer[idx], sizeof(regs->xes));
- idx += sizeof(regs->xes) * 2;
- mem2hex ((char *)®s->xfs, &buffer[idx], sizeof(regs->xfs));
- idx += sizeof(regs->xfs) * 2;
- mem2hex ((char *)®s->xgs, &buffer[idx], sizeof(regs->xgs));
+ mem2hex ((char *)®s->cs, &buffer[idx], sizeof(regs->cs));
+ idx += sizeof(regs->cs) * 2;
+ mem2hex ((char *)®s->ss, &buffer[idx], sizeof(regs->ss));
+ idx += sizeof(regs->ss) * 2;
+ mem2hex ((char *)®s->ds, &buffer[idx], sizeof(regs->ds));
+ idx += sizeof(regs->ds) * 2;
+ mem2hex ((char *)®s->es, &buffer[idx], sizeof(regs->es));
+ idx += sizeof(regs->es) * 2;
+ mem2hex ((char *)®s->fs, &buffer[idx], sizeof(regs->fs));
+ idx += sizeof(regs->fs) * 2;
+ mem2hex ((char *)®s->gs, &buffer[idx], sizeof(regs->gs));
}
/* at this point we allow any register to be changed, caveat emptor */
buffer += sizeof(regs->eip) * 2;
hex2mem(buffer, (char *)®s->eflags, sizeof(regs->eflags));
buffer += sizeof(regs->eflags) * 2;
- hex2mem(buffer, (char *)®s->xcs, sizeof(regs->xcs));
- buffer += sizeof(regs->xcs) * 2;
- hex2mem(buffer, (char *)®s->xss, sizeof(regs->xss));
- buffer += sizeof(regs->xss) * 2;
- hex2mem(buffer, (char *)®s->xds, sizeof(regs->xds));
- buffer += sizeof(regs->xds) * 2;
- hex2mem(buffer, (char *)®s->xes, sizeof(regs->xes));
- buffer += sizeof(regs->xes) * 2;
- hex2mem(buffer, (char *)®s->xfs, sizeof(regs->xfs));
- buffer += sizeof(regs->xfs) * 2;
- hex2mem(buffer, (char *)®s->xgs, sizeof(regs->xgs));
+ hex2mem(buffer, (char *)®s->cs, sizeof(regs->cs));
+ buffer += sizeof(regs->cs) * 2;
+ hex2mem(buffer, (char *)®s->ss, sizeof(regs->ss));
+ buffer += sizeof(regs->ss) * 2;
+ hex2mem(buffer, (char *)®s->ds, sizeof(regs->ds));
+ buffer += sizeof(regs->ds) * 2;
+ hex2mem(buffer, (char *)®s->es, sizeof(regs->es));
+ buffer += sizeof(regs->es) * 2;
+ hex2mem(buffer, (char *)®s->fs, sizeof(regs->fs));
+ buffer += sizeof(regs->fs) * 2;
+ hex2mem(buffer, (char *)®s->gs, sizeof(regs->gs));
}
int
This occurs when leaving a system call from a domain.
*/
if ( exceptionVector == 3 &&
- (xen_regs->xcs & 3) == 3 &&
+ (xen_regs->cs & 3) == 3 &&
xen_regs->eip != pdb_system_call_next_addr + 1)
{
TRC(printf("pdb: user bkpt (0x%x) at 0x%x:0x%lx:0x%lx\n",
- exceptionVector, xen_regs->xcs & 3, cr3, xen_regs->eip));
+ exceptionVector, xen_regs->cs & 3, cr3, xen_regs->eip));
return 1;
}
unsigned long esp;
unsigned short ss, ds, es, fs, gs;
- if ( regs->xcs & 3 )
+ if ( regs->cs & 3 )
{
esp = regs->esp;
- ss = regs->xss & 0xffff;
- ds = regs->xds & 0xffff;
- es = regs->xes & 0xffff;
- fs = regs->xfs & 0xffff;
- gs = regs->xgs & 0xffff;
+ ss = regs->ss & 0xffff;
+ ds = regs->ds & 0xffff;
+ es = regs->es & 0xffff;
+ fs = regs->fs & 0xffff;
+ gs = regs->gs & 0xffff;
}
else
{
}
printk("CPU: %d\nEIP: %04x:[<%08lx>] \nEFLAGS: %08lx\n",
- smp_processor_id(), 0xffff & regs->xcs, regs->eip, regs->eflags);
+ smp_processor_id(), 0xffff & regs->cs, regs->eip, regs->eflags);
printk("eax: %08lx ebx: %08lx ecx: %08lx edx: %08lx\n",
regs->eax, regs->ebx, regs->ecx, regs->edx);
printk("esi: %08lx edi: %08lx ebp: %08lx esp: %08lx\n",
trap_info_t *ti;
unsigned long fixup;
- if (!(regs->xcs & 3))
+ if (!(regs->cs & 3))
goto xen_fault;
ti = current->thread.traps + trapnr;
return;
#endif
- if ( (regs->xcs & 3) != 3 )
+ if ( (regs->cs & 3) != 3 )
{
- if ( unlikely((regs->xcs & 3) == 0) )
+ if ( unlikely((regs->cs & 3) == 0) )
{
show_registers(regs);
panic("CPU%d FATAL TRAP: vector = 3 (Int3)\n"
return; /* successfully copied the mapping */
}
- if ( unlikely(!(regs->xcs & 3)) )
+ if ( unlikely(!(regs->cs & 3)) )
goto xen_fault;
ti = d->thread.traps + 14;
unsigned long fixup;
/* Badness if error in ring 0, or result of an interrupt. */
- if ( !(regs->xcs & 3) || (error_code & 1) )
+ if ( !(regs->cs & 3) || (error_code & 1) )
goto gp_in_kernel;
/*
{
/* This fault must be due to <INT n> instruction. */
ti = current->thread.traps + (error_code>>3);
- if ( TI_GET_DPL(ti) >= (regs->xcs & 3) )
+ if ( TI_GET_DPL(ti) >= (regs->cs & 3) )
{
#ifdef XEN_DEBUGGER
if ( pdb_initialized && (pdb_ctx.system_call != 0) )
return;
}
- if ( (regs->xcs & 3) == 0 )
+ if ( (regs->cs & 3) == 0 )
{
/* Clear TF just for absolute sanity. */
regs->eflags &= ~EF_TF;
unsigned int *pseg = NULL; /* segment for memory operand (NULL=default) */
/* WARNING: We only work for ring-3 segments. */
- if ( unlikely((regs->xcs & 3) != 3) )
+ if ( unlikely((regs->cs & 3) != 3) )
{
- DPRINTK("Taken fault at bad CS %04x\n", regs->xcs);
+ DPRINTK("Taken fault at bad CS %04x\n", regs->cs);
goto fail;
}
- if ( !linearise_address((u16)regs->xcs, regs->eip, (unsigned long *)&eip) )
+ if ( !linearise_address((u16)regs->cs, regs->eip, (unsigned long *)&eip) )
{
- DPRINTK("Cannot linearise %04x:%08lx\n", regs->xcs, regs->eip);
+ DPRINTK("Cannot linearise %04x:%08lx\n", regs->cs, regs->eip);
goto fail;
}
case 0x66: /* Operand-size override */
break;
case 0x2e: /* CS override */
- pseg = ®s->xcs;
+ pseg = ®s->cs;
break;
case 0x3e: /* DS override */
- pseg = ®s->xds;
+ pseg = ®s->ds;
break;
case 0x26: /* ES override */
- pseg = ®s->xes;
+ pseg = ®s->es;
break;
case 0x64: /* FS override */
- pseg = ®s->xfs;
+ pseg = ®s->fs;
break;
case 0x65: /* GS override */
- pseg = ®s->xgs;
+ pseg = ®s->gs;
break;
case 0x36: /* SS override */
- pseg = ®s->xss;
+ pseg = ®s->ss;
break;
default: /* Not a prefix byte */
goto done_prefix;
{
case 0:
if ( pseg == NULL )
- pseg = ®s->xds;
+ pseg = ®s->ds;
disp32 = 0;
if ( rm == 5 ) /* disp32 rather than (EBP) */
{
case 1:
if ( pseg == NULL ) /* NB. EBP defaults to SS */
- pseg = (rm == 5) ? ®s->xss : ®s->xds;
+ pseg = (rm == 5) ? ®s->ss : ®s->ds;
if ( get_user(disp8, pb) )
{
DPRINTK("Fault while extracting <disp8>.\n");
case 2:
if ( pseg == NULL ) /* NB. EBP defaults to SS */
- pseg = (rm == 5) ? ®s->xss : ®s->xds;
+ pseg = (rm == 5) ? ®s->ss : ®s->ds;
if ( get_user(disp32, (u32 *)pb) )
{
DPRINTK("Fault while extracting <disp8>.\n");
"caused GPF(0) at %04x:%08lx\n",
eip[0], eip[1], eip[2], eip[3],
eip[4], eip[5], eip[6], eip[7],
- regs->xcs, regs->eip);
+ regs->cs, regs->eip);
fail:
return 0;
}